home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / include / Xm / DragCP.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-30  |  4.9 KB  |  200 lines

  1. /* 
  2.  * (c) Copyright 1989, 1990, 1991, 1992, 1993 OPEN SOFTWARE FOUNDATION, INC. 
  3.  * ALL RIGHTS RESERVED 
  4. */ 
  5. /* 
  6.  * Motif Release 1.2.3
  7. */ 
  8. /*   $RCSfile: DragCP.h,v $ $Revision: 10.1 $ $Date: 1994/02/03 15:36:50 $ */
  9. /*
  10. *  (c) Copyright 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  11. #ifndef _XmDragCP_h
  12. #define _XmDragCP_h
  13.  
  14. #include <Xm/XmP.h>
  15. #include <Xm/DragC.h>
  16.  
  17. #include <X11/Shell.h>
  18. #include <X11/ShellP.h>
  19.  
  20. #include <Xm/DragIcon.h>
  21. #include <Xm/DragOverS.h>
  22. #include <Xm/DropSMgrP.h>
  23.  
  24. #ifdef __cplusplus
  25. extern "C" {
  26. #endif
  27.  
  28.  
  29. /***********************************************************************
  30.  *
  31.  * DragContext (RootWrapper) Widget Private Data
  32.  *
  33.  ***********************************************************************/
  34.  
  35. #ifdef _NO_PROTO
  36. typedef void    (*XmDragStartProc)();
  37. typedef void     (*XmDragCancelProc)();
  38. #else
  39. typedef void    (*XmDragStartProc)( XmDragContext, Widget, XEvent *);
  40. typedef void     (*XmDragCancelProc)( XmDragContext) ;
  41. #endif /* _NO_PROTO */
  42.  
  43.  
  44. #define _XmDragStart(dc, srcW, event) \
  45.   (*((XmDragContextClass)XtClass(dc))->drag_class.start)\
  46.   (dc, srcW, event)
  47.  
  48. #define _XmDragCancel(dc) \
  49.   (*((XmDragContextClass)XtClass(dc))->drag_class.cancel)\
  50.   (dc)
  51.  
  52. typedef struct {
  53.     XmDragStartProc        start;
  54.     XmDragCancelProc        cancel;
  55.     XtPointer               extension;
  56. } XmDragContextClassPart;
  57.  
  58. typedef struct _XmDragContextClassRec {
  59.     CoreClassPart              core_class;
  60.     XmDragContextClassPart    drag_class;
  61. } XmDragContextClassRec;
  62.  
  63. externalref XmDragContextClassRec xmDragContextClassRec;
  64.  
  65. #define XtDragByPoll     0
  66. #define XtDragByEvent    1
  67.  
  68. typedef struct {
  69.     Window        frame;
  70.     Window        window;
  71.     Widget        shell;
  72.     unsigned char    flags;
  73.     unsigned char    dragProtocolStyle;
  74.     int            xOrigin, yOrigin;
  75.     unsigned int    width, height;
  76.     unsigned int    depth;
  77.     XtPointer        iccInfo;
  78. } XmDragReceiverInfoStruct, *XmDragReceiverInfo;
  79.  
  80.  
  81. typedef union _XmConvertSelectionRec
  82.   {
  83.     XtConvertSelectionIncrProc sel_incr ;
  84.     XtConvertSelectionProc     sel ;
  85.   } XmConvertSelectionRec ;
  86.   
  87.  
  88. typedef struct _XmDragContextPart{
  89.     /****  resources ****/
  90.  
  91.     Atom            *exportTargets;
  92.     Cardinal            numExportTargets;
  93.     XmConvertSelectionRec    convertProc;
  94.     XtPointer            clientData;
  95.     XmDragIconObject        sourceCursorIcon;
  96.     XmDragIconObject        stateCursorIcon;
  97.     XmDragIconObject        operationCursorIcon;
  98.     XmDragIconObject        sourcePixmapIcon;
  99.     Pixel            cursorBackground;
  100.     Pixel            cursorForeground;
  101.     Pixel            validCursorForeground;
  102.     Pixel            invalidCursorForeground;
  103.     Pixel            noneCursorForeground;
  104.     XtCallbackList        dragMotionCallback;
  105.     XtCallbackList        operationChangedCallback;
  106.     XtCallbackList        siteEnterCallback;
  107.     XtCallbackList        siteLeaveCallback;
  108.     XtCallbackList        topLevelEnterCallback;
  109.     XtCallbackList        topLevelLeaveCallback;
  110.     XtCallbackList        dropStartCallback;
  111.     XtCallbackList        dropFinishCallback;
  112.     XtCallbackList        dragDropFinishCallback;
  113.     unsigned char        dragOperations;
  114.     Boolean            incremental;
  115.     unsigned char        blendModel;
  116.  
  117.     /* private resources */
  118.     Window            srcWindow;
  119.     Time            dragStartTime;
  120.     Atom            iccHandle;
  121.     Widget            sourceWidget;
  122.     Boolean            sourceIsExternal;
  123.  
  124.     /**** instance data ****/
  125.     Boolean            topWindowsFetched;
  126.     unsigned char         commType;
  127.     unsigned char        animationType;
  128.  
  129.     unsigned char        operation;
  130.     unsigned char        operations;
  131.     unsigned int        lastEventState;
  132.     unsigned char        dragCompletionStatus;
  133.     unsigned char        dragDropCompletionStatus;
  134.     Boolean            forceIPC;
  135.     Boolean            serverGrabbed;
  136.     Boolean            useLocal;
  137.     Boolean            inDropSite;
  138.     XtIntervalId         dragTimerId;
  139.     
  140.     Time            roundOffTime;
  141.     Time            lastChangeTime;
  142.     Time            crossingTime;
  143.  
  144.     Time            dragFinishTime;
  145.     Time            dropFinishTime;
  146.     
  147.     Atom            dropSelection;
  148.     Widget            srcShell;
  149.     Position        startX, startY;
  150.  
  151.     XmID            siteID;
  152.  
  153.     Screen            *currScreen;
  154.     Window            currWmRoot;
  155.     XmDragOverShellWidget    curDragOver;
  156.     XmDragOverShellWidget    origDragOver;
  157.  
  158.     XmDragReceiverInfoStruct    *currReceiverInfo;
  159.     XmDragReceiverInfoStruct    *rootReceiverInfo;
  160.     XmDragReceiverInfoStruct    *receiverInfos;
  161.     Cardinal            numReceiverInfos;
  162.     Cardinal            maxReceiverInfos;
  163.  
  164.     unsigned char        trackingMode;
  165.     unsigned char        activeProtocolStyle;
  166.     unsigned char             activeBlendModel;
  167. } XmDragContextPart;
  168.  
  169.  
  170. typedef  struct _XmDragContextRec{
  171.     CorePart             core;
  172.     XmDragContextPart        drag;
  173. } XmDragContextRec;
  174.  
  175. #define _XmDCtoDD(dc) ((XmDisplay)XtParent(dc))
  176.  
  177.  
  178. /********    Private Function Declarations    ********/
  179. #ifdef _NO_PROTO
  180.  
  181. extern XmDragReceiverInfo _XmAllocReceiverInfo() ;
  182. extern unsigned char _XmGetActiveProtocolStyle() ;
  183.  
  184. #else
  185.  
  186. extern XmDragReceiverInfo _XmAllocReceiverInfo( 
  187.                         XmDragContext dc) ;
  188. extern unsigned char _XmGetActiveProtocolStyle( 
  189.                         Widget w) ;
  190.  
  191. #endif /* _NO_PROTO */
  192. /********    End Private Function Declarations    ********/
  193.  
  194.  
  195. #ifdef __cplusplus
  196. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  197. #endif
  198.  
  199. #endif /* _XmDragCP_h */
  200.